/**
 * 版权所有(C)，上海海鼎信息工程股份有限公司，2007，所有权利保留。
 * 
 * 项目名：	rumba
 * 文件名：	IConstraint.java
 * 模块说明：	
 * 修改历史：
 * Oct 30, 2007 - lxm - 创建。
 */
package com.hd123.rumba.mscb.constraint;

import java.util.Map;

import net.sf.hibernate.HibernateException;

import com.hd123.rumba.exception.BusinessException;

/**
 * 约束条件解释器 | 接口类
 * 
 * @author lxm
 * 
 */
public interface IConstraint {

  /** 约束条件上下文 */
  public String getContext() throws BusinessException;

  public void setContext(String context) throws BusinessException;

  /** 数据字典。 */
  public Map<String, Object> getDict() throws BusinessException;

  public void setDict(Map<String, Object> dict) throws BusinessException;

  /**
   * 判断是否有效。
   * 
   * @return
   * @throws BusinessException
   * @throws HibernateException
   */
  public boolean isValid() throws BusinessException, HibernateException;

  /**
   * 取得约束的描述信息。
   * 
   * @return
   * @throws BusinessException
   */
  public String getDescription() throws BusinessException;

  /**
   * 清除所有数据，包括{@link #dict}和{@link context}。
   * 
   * @throws BusinessException
   */
  public void clear() throws BusinessException;
}
